﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Ext.Net.MVC;
using Utpl.Syllabus.Framework;
using Utpl.Syllabus.Framework.Web.MVC;
using Utpl.Syllabus.Reconocimiento.BL;

namespace Utpl.Reconocimiento.Web.Controllers
{
    [AjaxException]
    public class EquivalenciaController : BaseController
    {
        public EquivalenciaController(IManejadorExcepciones manejadorExcepciones)
            : base(manejadorExcepciones)
        {
        }
        /// <summary>
        ///  action para el buscar de pgAdministrarComponenteEducativo.aspx
        /// </summary>
        /// <param name="criteria">criterio de busqueda</param>
        /// <param name="start">inicio de la paginacion</param>
        /// <param name="limit">limite de la paginacion</param>
        /// <returns>ActionResult JSON</returns>
        public AjaxStoreResult BusquedaAdministracion(EquivalenciaCriteria criteria, int start, int limit)
        {
            var lista = EquivalenciaList.Get(criteria, start, limit);

            var listaFiltrada = from l in lista
                                select new
                                {
                                    l.Id,
                                    l.CodigoComponente,
                                    l.CodigoPlanEstudio,
                                    l.CodigoVariacion,
                                    l.ComponenteId,
                                    /*ComponentesOrigen = from co in l.ComponentesOrigen
                                                        select new
                                                                   {
                                                                       co.AsignaturaId,
                                                                       co.Codigo,
                                                                       co.Creditos,
                                                                       co.GrupoCredito,
                                                                       co.GrupoCreditoId,
                                                                       co.Id,
                                                                       co.Nivel,
                                                                       co.Nombre,
                                                                       co.Nota,
                                                                       co.PlanEstudioId,
                                                                       co.VersionRegistro
                                                                   },*/
                                    //l.ComponentesOrigen,
                                    l.Estado,
                                    l.GrupoCredito,
                                    l.GrupoCreditoId,
                                    l.NombreComponente,
                                    l.NombrePlanEstudio,
                                    l.NombreVariacion,
                                    l.NumeroCreditos,
                                    l.Observacion,
                                    l.PlanEstudioOrigenId,
                                    l.VariacionProgramaAcademicoId
                                };

            return new AjaxStoreResult(listaFiltrada, lista.TotalResultSetCount);
            //return new AjaxStoreResult(lista, lista.TotalResultSetCount);
        }

    }
}
